package week3;

public class Singleton1 {  //懒汉式，以时间换空间，不安全要双重检查加锁，同步代码块
    private Singleton1() {
    }//私有构造方法
    private volatile static Singleton1 singleton1 = null;//定义一个变量储存创建好的类实例,添加volatile的修饰

    public static Singleton1 getSingleton1(){//定义一个方法来创建类实例，减少多重加锁，
        if (singleton1 == null){//判断变量里有没有值，
            //进入同步块,为了线程安全加锁，
            synchronized (Singleton1.class){//静态方法，用类
                if (singleton1 == null){//再次检查实例是否存在
                    singleton1 = new Singleton1();//现在创建实例，并赋给定义好的变量
                }
            }
        }
        return singleton1;
    }
}
